Code
library(tidyverse)
library(ospowertrader)
library(lubridate)
library(timetk)
library(arrow)Jakob Prossliner
November 25, 2023
apg_prices <- arrow::read_parquet("./data/apg_imbalance_prices.parquet")
terna_prices <- arrow::read_parquet("./data/terna_imbalance_prices.parquet")
combined_prices <- apg_prices %>%
inner_join(terna_prices, by = c("df" = "reference_date")) %>%
select(df, apg_price = ae_price, terna_price = unbalance_price_EURxMWh)
combined_prices %>%
pivot_longer(-df) %>%
timetk::plot_time_series(
df, value, name, .smooth = FALSE, .title = "APG vs Terna (1)"
)This graph shows pretty well the impact of Terna’s participation to the Picasso platform. While large spikes, which were already common in the Austrian Control Area, were unheard of in Italy, after the 19th of July they became relatively common in Italy too.

Here we can see there is a lot of covariance for extreme values, notice (!) the difference in scale. APG tends to present much extremer imbalance prices.

Very surprising - no idea why the distribution is so different.
Under normal circumstances/normal price levels for imbalance prices - APG seems to have a much smoother distribution. Terna presents more of a multimodal distribution, peaking around zero and two more peaks - probably values set around the MGP/day-ahead price.